"""
Programa que calcula el valor ohmico de los
resistores el?ctricos en funci?n del c?digo de colores.
Solo para resistores de cinco l?neas, incluida la tolerancia.


Desarrollado por Renzo A. Pav?n
Contacto: renzopavan@gmail.com
A?o 2013
"""

import os
os.system('clear')
os.system('cls')

def numero_color(numero):

    if numero==0:
        color = "Negro"
        return color

    if numero==1:
        color = "Marron"
        return color

    if numero==2:
        color = "Rojo"
        return color

    if numero==3:
        color = "Naranja"
        return color

    if numero==4:
        color = "Amarillo"
        return color

    if numero==5:
        color = "Verde"
        return color

    if numero==6:
        color = "Azul"
        return color

    if numero==7:
        color = "Violeta"
        return color

    if numero==8:
        color = "Gris"
        return color

    if numero==9:
        color = "Blanco"
        return color

    if numero=="a":
        color = "Plata"
        return color

    if numero=="b":
        color= "Oro"
        return color

def calcula_valor(valor, valor2, valor3 , valor4 , valor5):

    #unimos=None

    #trio=None

    if valor4=="a":

        exponente=0.01

    elif valor4=="b":

        exponente=0.1

    else:

        exponente=10**valor4

    valor=str(valor)
    valor2=str(valor2)
    valor3=str(valor3)

    trio=int(valor+valor2+valor3)

    trio=(trio*exponente)

    if valor5=="a":

        trio=[trio,'10%']

        return trio

    else:

        trio=[trio,'5%']

        return trio


print "CALCULO DE RESISTENCIAS ELECTRICAS POR CODIGO DE COLORES v 1.0"
print ""
print ""


preguntar = True
calcular = True
contador= None
primero = None
segundo = None
tercero = None
cuarto = None
quinto = None
nuevo_calculo = None

print "0 . Negro"
print "1 . Marron"
print "2 . Rojo"
print "3 . Naranja"
print "4 . Amarillo"
print "5 . Verde"
print "6 . Azul"
print "7 . Violeta"
print "8 . Gris"
print "9 . Blanco"
print "a . Plata"
print "b . Oro"
print ""

while calcular==True:

    while preguntar==True:

        primero = raw_input("Ingrese el primer color de izquierda a derecha: (1-9)")

        cantidad_caracteres=len(primero)

        if cantidad_caracteres > 0:

            primero = primero[0]

            if primero.isdigit()==True and primero != None:

                primero=int(primero)

                if (primero >= 1 and primero < 10 ):

                    print""

                    break


                else:
                    print""
                    print"ERROR"
                    print""

            else:

                print ""
                print "ERROR"
                print ""

        else:

            print ""
            print "DEBE INGRESAR UN VALOR"
            print ""

    while preguntar==True:

        segundo=raw_input("Ingrese el segundo color de izquierda a derecha: (0-9) ")

        cantidad_caracteres=len(segundo)

        if cantidad_caracteres > 0:

            segundo=segundo[0]

            if segundo.isdigit()==True:

                segundo=int(segundo)

                if (segundo >= 0 and segundo < 10 ):

                    print""

                    break

                else:
                    print""
                    print"ERROR"
                    print""

            else:

                 print""
                 print"ERROR"
                 print""

        else:
            print""
            print "DEBE INGRESAR UN VALOR"
            print ""

    while preguntar==True:

        tercero=raw_input("Ingrese el tercer color de izquierda a derecha: (0-9) ")

        cantidad_caracteres=len(tercero)

        if cantidad_caracteres > 0:

            tercero = tercero[0]

            if tercero.isdigit()==True:

                tercero=int(tercero)

                if (tercero >= 0 and tercero < 10 ):

                    print""
                    break

                else:
                    print""
                    print"ERROR"
                    print""

            else:

                print""
                print"ERROR"
                print""

        else:

            print""
            print"DEBE INGRESAR UN VALOR"
            print""

    while preguntar==True:

        cuarto=raw_input("Ingrese el cuarto color de izquierda a derecha: (1-9) (a/b)")

        cantidad_caracteres=len(cuarto)

        if cantidad_caracteres > 0:

            cuarto = cuarto[0]

            if cuarto.isdigit()==True:

                cuarto=int(cuarto)

                if (cuarto >= 1 and cuarto < 10 ):

                    print""
                    break

                else:
                    print""
                    print"ERROR"
                    print""

            else:

                if (cuarto == "a" or cuarto == "b"):

                    print""
                    break

                else:
                    print""
                    print"ERROR"
                    print""

        else:

            print""
            print"DEBE INGRESAR UN VALOR"
            print""


    while preguntar==True:

        quinto=raw_input("Ingrese el quinto color de izquierda a derecha: (a/b)")

        cantidad_caracteres=len(quinto)

        if cantidad_caracteres > 0:

            quinto = quinto[0]

            if quinto.isdigit()==False:



                if (quinto=="a" or quinto == "b" ):

                    os.system('clear')
                    os.system('cls')
                    print "CALCULO DE RESISTENCIAS ELECTRICAS POR CODIGO DE COLORES v 1.0"
                    print ""
                    print ""

                    print "COLORES: ", numero_color(primero)+", "+numero_color(segundo)+", "+numero_color(tercero)+", "+numero_color(cuarto)+", "+numero_color(quinto)
                    print ""
                    print "VALOR: ", calcula_valor(primero,segundo,tercero,cuarto,quinto)[0],"Ohm",calcula_valor(primero,segundo,tercero,cuarto,quinto)[1]
                    print ""
                    print ""

                    nuevo_calculo=raw_input("Desea conocer el valor de otra resistencia? (s/n)")

                    cantidad_caracteres=len(nuevo_calculo)

                    if cantidad_caracteres > 0:

                        nuevo_calculo=nuevo_calculo[0]

                        if nuevo_calculo == "s":

                            os.system('clear')
                            os.system('cls')

                            print "CALCULO DE RESISTENCIAS ELECTRICAS POR CODIGO DE COLORES v 1.0"
                            print ""
                            print ""
                            print "0 . Negro"
                            print "1 . Marron"
                            print "2 . Rojo"
                            print "3 . Naranja"
                            print "4 . Amarillo"
                            print "5 . Verde"
                            print "6 . Azul"
                            print "7 . Violeta"
                            print "8 . Gris"
                            print "9 . Blanco"
                            print "a . Plata"
                            print "b . Oro"
                            print ""
                            break

                        else:

                            print""
                            print "FIN DE PROGRAMA"

                            calcular=False

                            break

                    else:
                        print""
                        print"FIN DE PROGRAMA"
                        calcular=False
                        break

                else:

                    print""
                    print"ERROR"
                    print""

            else:

                print""
                print"ERROR"
                print""

        else:

            print""
            print"DEBE INGRESAR UN VALOR"
            print""







